package com.quanxiaoha.weblog.web.service;

import com.quanxiaoha.weblog.common.utils.Response;
import com.quanxiaoha.weblog.web.model.vo.user.UpdateUserProfileReqVO;

/**
 * 用户个人信息服务接口
 */
public interface UserProfileService {

    /**
     * 获取当前用户的个人信息和统计数据
     * @return 用户信息
     */
    Response getCurrentUserProfile();

    /**
     * 获取指定用户的公开信息
     * @param userId 用户ID
     * @return 用户公开信息
     */
    Response getUserPublicProfile(Long userId);

    /**
     * 更新用户个人信息（旧版本，保持兼容性）
     * @param nickname 昵称
     * @param avatar 头像
     * @param bio 个人简介
     * @return 操作结果
     */
    Response updateUserProfile(String nickname, String avatar, String bio);

    /**
     * 更新用户个人信息（新版本）
     * @param updateUserProfileReqVO 更新用户个人信息请求VO
     * @return 操作结果
     */
    Response updateUserProfile(UpdateUserProfileReqVO updateUserProfileReqVO);

    /**
     * 上传用户头像
     * @param file 头像文件
     * @return 操作结果
     */
    Response uploadAvatar(org.springframework.web.multipart.MultipartFile file);

    /**
     * 获取用户登录日志
     * @param page 页码
     * @param size 页大小
     * @return 登录日志列表
     */
    Response getUserLoginLogs(Integer page, Integer size);

    /**
     * 初始化用户统计数据
     * @param userId 用户ID
     */
    void initUserStatistics(Long userId);

    /**
     * 获取当前用户个人统计信息
     * @return 用户个人统计信息
     */
    Response getUserPersonalStats();

    /**
     * 获取当前用户个人文章发布统计信息
     * @return 用户个人文章发布统计信息
     */
    Response getUserPersonalPublishStats();

    /**
     * 获取当前用户个人PV访问量统计信息
     * @return 用户个人PV访问量统计信息
     */
    Response getUserPersonalPVStats();
}
